class Solution:
    def superPow(self, a, b):
        MOD = 1337
        res = 1
        b = b[::-1]
        for digit in b:
            res = (res * pow(a, digit, MOD)) % MOD
            a = (pow(a, 10, MOD))
        return res
        

if __name__ == '__main__':
    a = 2
    b = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
    print(Solution().superPow(a, b))

# 思路：
# 连乘取模，如果数值比较大，可以先取模，然后再乘。
# 乘法、加法、幂运算中，随时取模都可以，不会影响最终结果，反而更安全高效。